/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controller;

import funcion.FlickrImageFinder;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractCommandController;
import model.Usuario;
import model.Viaje;
import java.util.List;
import model.Lugar;
import model.Participante;
import model.SugerenciaViaje;
import service.UsuarioService;
import service.LugarService;
import service.ParticipanteService;
import service.ViajeService;
import service.SugerenciaService;
import org.apache.log4j.*;
import org.apache.log4j.xml.DOMConfigurator;
import service.ComentarioService;

/**
 *
 * @author MIS DOCUMENTOS
 */
public class RegistarOpciondeViaje extends AbstractCommandController {

    private UsuarioService usuarioService;
    private LugarService lugarService;
    private ViajeService viajeService;
    private ParticipanteService participanteService;
    private ComentarioService comentarioService;
    private SugerenciaService sugerenciaService;
    private static Logger loggers = null;

    public void setParticipanteService(ParticipanteService participanteService) {
        this.participanteService = participanteService;
    }

    public void setSugerenciaService(SugerenciaService sugerenciaService) {
        this.sugerenciaService = sugerenciaService;
    }

    public void setUsuarioService(UsuarioService usuarioService) {
        this.usuarioService = usuarioService;
    }

    public void setViajeService(ViajeService viajeService) {
        this.viajeService = viajeService;
    }

    public void setComentarioService(ComentarioService comentarioService) {
        this.comentarioService = comentarioService;
    }

    public void setLugarService(LugarService lugarService) {
        this.lugarService = lugarService;
    }

    public RegistarOpciondeViaje() {
        this.setCommandClass(Usuario.class);
    }

    @Override
    protected ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object form, BindException errors) throws Exception {
        Map model = new HashMap();
        Usuario user2;
        user2 = (Usuario) usuarioService.getUsuario(Long.parseLong(request.getParameter("ux")));
        Viaje via;
        via = (Viaje) viajeService.getViaje(Long.parseLong(request.getParameter("mv")));

        if (via.getEstatus().equals("PENDIENTE")){
            List fotos;
            FlickrImageFinder finder = new FlickrImageFinder();
            fotos = finder.getImages(request.getParameter("nombre"));
            List lugares;
            List participa;
            Participante par;
            Lugar lug;
            lug = (Lugar) lugarService.getLugar(Long.parseLong(request.getParameter("lugar")));
            participa = participanteService.getMisViajesPar2(Long.parseLong(request.getParameter("ux")), Long.parseLong(request.getParameter("mv")));
            lugares = lugarService.getEstadoList(via.getLugar().getIdLugar());
            par = (Participante) participa.get(0);
            SugerenciaViaje sviaje = new SugerenciaViaje(par, via, lug, request.getParameter("nombre"));
            sugerenciaService.saveSugerencia(sviaje);
            System.out.println("denuevo");
            request.getSession().setAttribute("usuarioList", null);
            model.put("title", "MODIFICAR DATOS");
            model.put("usuario", user2);
            model.put("lugar", lug);
            model.put("Sugerenciaviaje", sviaje);
            model.put("viaje", via);
            model.put("photos", fotos);
            return new ModelAndView("BuscarFotoSugerenciaViaje", model);
        }else{
            List Comentarios;
            Comentarios = comentarioService.getListaComentario(Long.parseLong(request.getParameter("mv")));
            request.getSession().setAttribute("usuarioList", null);
            model.put("title", "MODIFICAR DATOS");
            model.put("usuario", user2);
            model.put("viaje", via);
            model.put("comentar",Comentarios);
            model.put("Res", "El ya se Cerro la opción");
            return new ModelAndView("ViajeInvitado", model);
        }
    }
}
